package tenant_db

import (
	"context"
	"git.myscrm.cn/golang/common/ykerrcode"
	"google.golang.org/grpc"
)

func TenantDBHandleGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
	// 判断是否需要切换 db ，如果需要则切换
	if (&TenantDB{}).GetTenantDB(ctx) == nil {
		return nil, ykerrcode.TogRPCError(TenantCodeNotFound, "租户不存在或租户配置错误")
	}
	tenantCode, _ := GetTenantCode(ctx)
	tenantInfo, err := getTenantInfo(ctx, tenantCode)
	if err != nil {
		return nil, err
	}
	if tenantInfo.Enabled != 1 {
		return nil, ykerrcode.TogRPCError(TenantCodeDisabled, "租户已经停用，请联系管理人员")
	}
	return handler(ctx, req)
}
